/*
 * Copyright (c) 2018-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

namespace TencentCloud.Ocr.V20181119.Models
{
    using Newtonsoft.Json;
    using System.Collections.Generic;
    using TencentCloud.Common;

    public class ImageEnhancementRequest : AbstractModel
    {
        
        /// <summary>
        /// 图片的 Base64 值。支持的图片格式：PNG、JPG、JPEG，暂不支持 GIF 格式。支持的图片大小：所下载图片经Base64编码后不超过 10M。图片下载时间不超过 3 秒。图片的 ImageUrl、ImageBase64 必须提供一个，如果都提供，只使用 ImageUrl。
        /// </summary>
        [JsonProperty("ImageBase64")]
        public string ImageBase64{ get; set; }

        /// <summary>
        /// 图片的 Url 地址。支持的图片格式：PNG、JPG、JPEG，暂不支持 GIF 格式。支持的图片大小：所下载图片经 Base64 编码后不超过 10M。图片下载时间不超过 3 秒。图片存储于腾讯云的 Url 可保障更高的下载速度和稳定性，建议图片存储于腾讯云。非腾讯云存储的 Url 速度和稳定性可能受一定影响。
        /// </summary>
        [JsonProperty("ImageUrl")]
        public string ImageUrl{ get; set; }

        /// <summary>
        /// 默认为空，ReturnImage的取值以及含义如下：
        /// “preprocess”: 返回预处理后的图片数据
        /// “origin”：返回原图片数据
        /// " ":不返回图片数据
        /// </summary>
        [JsonProperty("ReturnImage")]
        public string ReturnImage{ get; set; }

        /// <summary>
        /// 默认值为1，指定图像增强方法：
        /// 1：切边增强
        /// 2：弯曲矫正
        /// 202：黑白模式
        /// 204：提亮模式
        /// 205：灰度模式
        /// 207：省墨模式
        /// 208：文字锐化（适合非彩色图片）
        /// 300:自动增强（自动从301～304选择任务类型）
        /// 301：去摩尔纹
        /// 302：去除阴影
        /// 303：去除模糊 
        /// 304：去除过曝
        /// </summary>
        [JsonProperty("TaskType")]
        public long? TaskType{ get; set; }


        /// <summary>
        /// For internal usage only. DO NOT USE IT.
        /// </summary>
        public override void ToMap(Dictionary<string, string> map, string prefix)
        {
            this.SetParamSimple(map, prefix + "ImageBase64", this.ImageBase64);
            this.SetParamSimple(map, prefix + "ImageUrl", this.ImageUrl);
            this.SetParamSimple(map, prefix + "ReturnImage", this.ReturnImage);
            this.SetParamSimple(map, prefix + "TaskType", this.TaskType);
        }
    }
}

